1. Field of the Invention
This invention relates to computer networks, and, more particularly, to inserting individualized digital tracers into copies of data distributed on a network.
2. Description of the Related Art
Web services may be used to provide Web software developers access to technology platforms and data, such as product catalogs, hosted on Web servers, or Web sites. Through Web services, developers may be empowered to innovate and build businesses by creating dynamic, interactive Web sites and Web applications that leverage Web services to access services, applications, and data on other Web servers/Web sites.
Generally speaking, a Web service interface may be configured to provide a standard, cross-platform API (Application Programming Interface) for communication between a client requesting some service to be performed and the service provider. In some embodiments, a Web service interface may be configured to support the exchange of documents or messages including information describing the service request and response to that request. Such documents, or messages, may be exchanged using standardized Web protocols, such as the Hypertext Transfer Protocol (HTTP), for example, and may be formatted in a platform-independent data format, such as eXtensible Markup Language (XML), for example.
FIG. 1 is a block diagram that illustrates an exemplary system configuration that provides a Web service interface to the logic and/or data of a Web site. In this example, a Web site, such as an e-commerce Web site, may be implemented on one or more servers 102, one or more of which may be coupled to Internet 100. Server(s) 102 may include software and/or hardware that implements enterprise logic 104 through which the functionalities of the Web site may be supported, for example through which items offered by an e-commerce Web site may be ordered.
Servers 102 may be coupled to data storage 110 for storing information in database 112 related to the Web site that may include, but is not limited to, Web pages, data related to the Web site, such as product information for an e-commerce Web site, and customer information. Data storage 110 may be implemented as one or more storage devices configured independently or as a storage system. In general, data storage 110 may be implemented as one or more of any type of storage device and/or storage system suitable for storing data used by the server systems of the Web site including, but not limited to: redundant array of inexpensive disks (RAID) devices, disk drives or arrays of disk drives such as Just a Bunch Of Disks (JBOD), (used to refer to disks that are not configured according to RAID), optical storage devices, tape drives, RAM disks, Storage Area Network (SAN), Network Access Storage (NAS), or combinations thereof.
Database 112 may be implemented as a single, monolithic database or as a combination of two or more databases and/or data stored in other, non-database formats, such as files stored in any of various file formats, including, but not limited to, Web pages such as product information Web pages providing details on products from a catalog of products offered through an e-commerce Web site. Database 112 may be or may include a relational database, or may be or may include any other type of database, such as an object oriented database, depending on implementation, or combinations thereof.
One or more client systems 122 may be coupled to Internet 100. Each client system 122 may be configured to access the Web site using a Web client application, such as a Web browser, via a Web client interface 108. One or more other servers 120 may be coupled to Internet 100, such as servers that implement the Web sites of other enterprises, institutions, individuals, etc., or even other Web sites of the enterprise that provides server(s) 102. One or more of servers 120 may be configured to access enterprise logic 104 of servers 102 and/or database 112 via a Web service interface 106 provided by one or more of servers 102. Note that Web service interface does not provide a “Web browser” interface to enterprise logic 104 and database 112, but instead provides a programmatic interface via an API through which at least some functionality of enterprise logic 104 and/or at least some data in database 112 may be programmatically accessed by applications hosted on servers 120. An application that accesses enterprise logic 104 and/or database 112 via Web service interface 106 may be referred to as Web service clients. Note that a server 120 including a Web service client may provide Web sites accessible to clients 122 via Web browsers, and the Web service client may be configured to access enterprise logic 104 and/or database 112 of servers 102 via Web service interface 106 to provide access to at least a portion of logic 104 and/or database 112 via the Web site provided by the server 120.
While FIG. 1 illustrates an exemplary system configuration in which a Web site provides both a Web client interface and an Web service interface for accessing enterprise logic and/or data of the Web site, Web services may be used to provide programmatic access to applications, services and/or data not associated with a conventional Web site accessible to clients via a Web browser. FIG. 2 is a block diagram that illustrates an exemplary system configuration that provides a Web service interface, and shows the interaction between a Web service client and a Web service provider in more detail. In this example, a Web service interface 106 may be implemented on a server 130 coupled to Internet 100. This server 130 may be referred to as a “Web service provider”. Server 130, or alternatively one or more other servers coupled to server 130, may include one or more applications or services 108. Server 130 may be coupled to data storage 140 for storing information in database 142. Database 142 may include any type of data.
Server 120 may be coupled to Internet 100. Server 120 may host a Web service client 124. Web service client 124 may be configured to programmatically access application or service 108 of server 130 and/or database 142 via Web service interface 106. Note that Web service interface does not provide a “Web browser” interface, but instead provides a programmatic interface via an API through which at least some functionality of application or service 108 and/or at least some data in database 142 may be programmatically accessed by Web service client 124. Also note that server 120 may provide a Web site accessible to client(s) 122 via Web browsers, and Web service client 124 may be configured to access at least some functionality of application or service 108 and/or at least some data in database 142 of server 130 via Web service interface 106 to provide access to at least some functionality of application or service 108 and/or at least some data in database 142 via the Web site provided by server 120.
To access an application, service or data provided by the Web service provider 130, Web service client 124 may send a request message to Web service interface 106 via Internet 100. Web service provider 130 may then process the request, for example by performing an indicated function(s) of application or service 108 or accessing indicated data in database 142. Web service interface 106 may then return results of the processing to the Web service client 124 in a response message via Internet 100.
Web services may be used in a variety of applications. One example of an area in which Web services may be used is for product merchandising. A first enterprise may provide a Web site or Web application hosted on one or more Web servers that may access information from a second enterprise's Web server or Web servers through Web services provided by the second enterprise's Web server(s), such as product catalog information, to merchandise products from the product catalog through the first enterprise's Web site or Web application. The second enterprise may earn a commission from the first enterprise for each sale.
An enterprise may sublicense at least part of a collection of potentially copyrighted data owned by the enterprise, such as product information in a product catalog, to third party developers under some sort of licensing agreement. The third party developers may be given access to the data in a systematic fashion through a Web service interface, through which the third parties may request and receive copies of particular portions of the data collection. The third party developers may, in some cases, refurbish data received from the enterprise and sell it or redistribute it to some other party, possibly in violation of the licensing agreement.
Various mechanisms for protecting copyrighted works and materials from unauthorized copying and/or for detecting illicit copies of copyrighted works have been implemented. Falsified content may be inserted into copyrighted material with the intent of deterring, and detecting, illicit or unauthorized copying of the material, both for works that are in print and electronic/digital works. For example, mapmakers may insert deliberately inaccurate or fictitious roads or place names in maps. Enterprises that provide phone directories may insert fictitious listings into the directories. The intent of this falsified content is to be perceivable but not easily recognizable as “false content” to the casual viewer, including those who might want to illicitly copy the material. The publisher of a work knows what content of the work is fictitious, but the copyright infringer does not. If some entity illicitly uses portions from this material that includes the falsified content, the illicit use may be detected by the inclusion of the falsified content. Conventionally, the same fictitious information is inserted into each published copy of a work.
“Watermarks” may be inserted into various works, both works that are in print and electronic/digital works. The intent of watermarks is generally to mark a work in such a way as to not interfere with the work itself, while providing a mechanism to help protect the work from being illicitly copied, or to at least to make it easier to detect illicit or unauthorized copies. Watermarks for printed works are generally invisible under normal conditions, and only visible under certain conditions, such as when a copy of the work is held up to a bright light. Digital watermarks are generally “invisible” and cannot be perceived by the casual viewer. As far as the casual viewer is concerned, the digital watermark is simply not there. This is in contrast with the inserted falsified content described above, which is readily perceivable by a person viewing the material including the falsified content, although the typical viewer does not recognize the content as fictitious. Conventionally, as is the case for the inserted falsified content described above, the same watermark is inserted into each published copy of a work.
Various works, both works that are in print and electronic/digital works, may be individually marked in such a way so that one particular copy of the work may be uniquely distinguished from another copy of the work. An example is the use of serial numbers on works, both “real” and electronic/digital works. Some mechanisms may “hide” this information so that it is not easily perceivable in the work.